<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
// 格式化时间函数
function formatExcelDate(numb, format = '/') {
    const time = new Date((numb - 25567) * 24 * 3600000 - 5 * 60 * 1000 - 43 * 1000 - 24 * 3600000 - 8 * 3600000)
    time.setYear(time.getFullYear())
    const year = time.getFullYear() + ''
    const month = time.getMonth() + 1 + ''
    const date = time.getDate() + ''
    if (format && format.length === 1) {
        return year + format + month + format + date
    }
    return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)
} 
const data = [
    {
        入职日期: 44505,
        姓名: "小张",
        工号: "9002",
        手机号: "13800000252",
        转正日期: 44892,
        部门: "总裁办"
    },
    {
        入职日期: 44506,
        姓名: "小李",
        工号: 9006,
        手机号: "13810000512",
        转正日期: 44893,
        部门: "总裁办",
    }

]

const transZhketToEnkey =(data) => {
  const mapInfo = {
            '入职日期': 'timeOfEntry',
            '手机号': 'mobile',
            '姓名': 'username',
            '转正日期': 'correctionTime',
            '工号': 'workNumber',
            '部门': 'departmentName',
            '聘用形式': 'formOfEmployment'
        } 

        return data.map(item => {
          // item 是 data 中的每条数据
          // 定义一个空对象 接收转换为英文后的数据
          const enObj = {}
          // 取到 映射对象 mapInfo 中的 中文key 进行遍历
          Object.keys(mapInfo).forEach(zhKey => {
            // 用zhKey 取到对应的 enKey
            const enKey = mapInfo[zhKey]
            // 判断 添加的 是不是 日期
            if(enKey === 'timeOfEntry' || enKey === 'correctionTime'){
              // 是日期的化需要将数字转换为日期格式
              enObj[enKey] = new Date(formatExcelDate(item[zhKey]))
            }else{
              // 将英文key 和 item 对象中对应的中文key 的数值 添加到新对象中
              enObj[enKey] = item[zhKey]
            }
          })
          return enObj
        })
}
        // 1. 映射对象，根据映射对象找英文的键
        const mapInfo = {
            '入职日期': 'timeOfEntry',
            '手机号': 'mobile',
            '姓名': 'username',
            '转正日期': 'correctionTime',
            '工号': 'workNumber',
            '部门': 'departmentName',
            '聘用形式': 'formOfEmployment'
        } 

        const res = data.map(item => {
          // item 是 data 中的每条数据
          // 定义一个空对象 接收转换为英文后的数据
          const enObj = {}
          // 取到 映射对象 mapInfo 中的 中文key 进行遍历
          Object.keys(mapInfo).forEach(zhKey => {
            // 用zhKey 取到对应的 enKey
            const enKey = mapInfo[zhKey]
            // 判断 添加的 是不是 日期
            if(enKey === 'timeOfEntry' || enKey === 'correctionTime'){
              // 是日期的化需要将数字转换为日期格式
              enObj[enKey] = new Date(formatExcelDate(item[zhKey]))
            }else{
              // 将英文key 和 item 对象中对应的中文key 的数值 添加到新对象中
              enObj[enKey] = item[zhKey]
            }
          })
          return enObj
        })
        console.log(res);
        

        // const res = data.map(item => {
        //   console.log(item);
        //   const enObj = {}
        //   Object.keys(mapInfo).forEach(zhKey => {
        //     const enKey = mapInfo[zhKey]
        //     enObj[enKey] = item[zhKey]
        //   })
        //   return enObj
        // })
        // console.log(res);
      // Object.keys(mapInfo)   取到中文 key
      // const res = data.map(item => {
      //   // console.log(item); 入职日期: 44506, 姓名: '小李', 工号: 9006, 手机号: '13810000512', 转正日期: 44893
      //   const enObj = {}
      //   Object.keys(mapInfo).forEach(zhKey => {
      //     // console.log(zhKey);入职日期 手机号 ... 
      //     const enKey = mapInfo[zhKey]  //   取到 mapInfo 中对应的英文key
      //     enObj[enKey] = item[zhKey] // 给 enObj 添加属性  英文key 等于 取到的item中中文key的值
      //   }) 
      //   return enObj
      // })
      // console.log(res);
  </script>
</body>
</html>